npm publish如何过滤掉部分文件

发布 : 2018-12-17 浏览 :

npm publish 的时候会把当前目录里面所有的文件都publish到npm仓库中, 但是往往有一部分目录和文件不想发布上去, 比如项目的源码、 .editorconfigtslint.json 、 编译脚本等等信息, 发布出去对用户来说可能也没太大作用, 完全可以不发布这部分, 仅仅发布那些用户需要使用的相关文件, 那么该如何做呢?

  1. 使用 .gitignore 设置忽略哪些文件

如果项目使用了git 管理代码版本的话, 可能会使用 .gitignore , 那么 .gitignore 里面设置的忽略文件在 npm publish
的时候也会被忽略.

  1. 使用 .npmignore 设置忽略哪些文件

如果项目没有使用 git或者 没有 .gitignore 文件, 那么可以添加 .npmignore 文件来设置忽略哪些文件, .npmignore 的写法跟 .gitignore 的规则完全一样。 需要注意的是如果同时使用了 .npmignore.gitignore 的话, 只有 .npmignore 会生效, 优先级比较高。

  1. 使用 package.jsonfiles 字段选择发布哪些文件

上面两种方式都是设置忽略哪些文件, 有时可能只想发布编译打包后的几个文件或者目录, 如果按照上面的设置会很麻烦, 这是可以直接在 package.json 中 files 字段设置发布哪些文件或目录, 这样的话, 只有这些目录或文件才会被publish.
同时需要说明的是这里的优先级是高于 .npmignore.gitignore 的。

  1. npm默认带了一些规则

除了上面的规则外, npm还有一些内置的规则,会被自动忽略的文件有

1
2
3
4
5
6
7
8
9
10
11
12
.*.swp
._*
.DS_Store
.git
.hg
.npmrc
.lock-wscript
.svn
.wafpickle-*
config.gypi
CVS
npm-debug.log

node_modules下的所有文件也会被忽略。
另外还有一部分文件会被包含, 即便设置忽略也无效, 这些文件有

1
2
3
4
package.json
README (and its variants)
CHANGELOG (and its variants)
LICENSE / LICENCE

本文作者 : Shuai Liang
原文链接 : http://liangshuai.me/2018/12/17/yuque/npm publish如何过滤掉部分文件/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹